﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using SouthApps.MobileTasks.SDK.DAL.Repositories;
using SouthApps.MobileHealth.SDK.DAL;
using SouthApps.MobileHealth.SDK.DAL.Model;
using SouthApps.MobileHealth.SDK.Utils;
using SouthApps.MobileHealth.SDK.Cache;

namespace SouthApps.MobileHealth.SDK.Services
{
    public class ConveniosService
    {
        private IConveniosRepository conveniosRepository;
        
        public ConveniosService()
        {
            this.conveniosRepository = new ConveniosRepository();
        }

        public void AddConvenio(Convenio convenio)
        {
            this.conveniosRepository.AddConvenio(convenio);
        }

        public void AddEspecialidad(Especialidad especialidad)
        {
            this.conveniosRepository.AddEspecialidad(especialidad);
        }

        public void AddPlan(Plan plan)
        {
            this.conveniosRepository.AddPlan(plan);
        }

        public List<Plan> GetPlanesFinanciador(int financiadorId)
        {
            return this.conveniosRepository.GetPlanesFinanciador(financiadorId);
        }

        public List<Especialidad> GetEspecialidadesFinanciador(int financiadorId)
        {
            return this.conveniosRepository.GetEspecialidadesFinanciador(financiadorId);
        }

        public List<Especialidad> GetEspecialidadesPlanFinanciador(int financiadorId, int planId)
        {
            return this.conveniosRepository.GetEspecialidadesPlanFinanciador(financiadorId, planId);
        }

        public List<Convenio> GetConveniosFinanciador(int financiadorId, int? planId, int? especialidadId, int? sucursalPrestadorId)
        {
            return this.conveniosRepository.GetConveniosFinanciador(financiadorId, planId, especialidadId, sucursalPrestadorId);
        }

        public void ModifyPlan(Plan plan)
        {
            this.conveniosRepository.ModifyPlan(plan);
        }

        public void ModifyConvenio(Convenio convenio)
        {
            this.conveniosRepository.ModifyConvenio(convenio);
        }

        public void ModifyEspecialidad(Especialidad especialidad)
        {
            this.conveniosRepository.ModifyEspecialidad(especialidad);
        }
    }
}
